﻿
using System;
using System.Data;
using System.Linq;
using System.Linq.Dynamic;
using System.Linq.Dynamic.Core;
using System.Linq.Expressions;
using System.Threading.Tasks;
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;

using Abp.UI;
using Abp.AutoMapper;
using Abp.Authorization;
using Abp.Linq.Extensions;
using Abp.Domain.Repositories;
using Abp.Application.Services;
using Abp.Application.Services.Dto;

using L._52ABP.Application.Dtos;
using JYJ.AiYard.StationManagement.YardReport.Dtos;
using JYJ.AiYard.StationManagement.TbStations.Dtos;
using JYJ.AiYard.StationManagement.TbSales.Dtos;
using JYJ.AiYard.StationManagement.TbClientRegisters.Dtos;

namespace JYJ.AiYard.StationManagement.YardReport
{
    public interface ITbrInYardApplicationService : IApplicationService
    {
        Task<Dictionary<string, string>> downloadImages(int IN_OUT, int Id, long StationId);
        Task<Dictionary<string, string>> downloadImages2(int IN_OUT, int Id, long StationId);

        YardPagedResult<TbrInYard> GetPaged(string input);

        Task<FileDto> GetToExcel(string json);

        Task<List<TbStationSelectDto>> GetAllStationByTenantID();
        List<TbSaleSelectDto> GetAllSalesByStationID(long StationId);
        List<TbClientRegisterSelectDto> GetAllClientByStationID(long StationId);
        List<TbrGTOpUser> GetAllOpUser(long StationId); 
        List<string> GetAllCardType(long StationId);
        List<TbrOutMach> GetAllOutMach(long StationId);
        YardPagedResult<TbrOutYard> TbrOutYardGetPaged(string json);

        Task<FileDto> TbrOutYardGetToExcel(string json);

        YardPagedResult2<DataTable> TbrOutYardGetPaged2(string json);

        Task<FileDto> TbrOutYardGetToExcel2(string json);

        YardPagedResult<TbrOpenGate> TbrOpenGateGetPaged(string json);

        Task<FileDto> TbrOpenGateGetToExcel(string json);

        YardPagedResult<TbrIssued> TbrIssuedGetPaged(string json);

        Task<FileDto> TbrIssuedGetToExcel(string json);
        YardPagedResult2<DataTable> TbrDiscountGetPaged(string json);

        Task<FileDto> TbrDiscountGetToExcel(string json);

        YardPagedResult<TbrChangeClass> TbrChangeClassGetPaged(string json);

        Task<FileDto> TbrChangeClassGetToExcel(string json);

        YardPagedResult<TbrStatics> TbrStaticsGetPaged(string json);

        Task<FileDto> TbrStaticsGetToExcel(string json); 
        YardPagedResult2<DataTable> TbrStaticsGetPaged2(string json);

        Task<FileDto> TbrStaticsGetToExcel2(string json);

        YardPagedResult2<DataTable> TbrStaticsGetPaged3(string json);

        Task<FileDto> TbrStaticsGetToExcel3(string json);

        YardPagedResult<TbrOnlinePay> TbrOnlinePayGetPaged(string json);

        Task<FileDto> TbrOnlinePayGetToExcel(string json);

        YardPagedResult<TbrInvoice> TbrInvoiceGetPaged(string json);

        Task<FileDto> TbrInvoiceGetToExcel(string json);
        bool DeleteInvoice(List<int> delkyes);

        YardPagedResult<rRoadPayResults> rRoadPayResultsGetPaged(string json);

        Task<FileDto> rRoadPayResultsGetToExcel(string json);

        Task<string> rRoadPayResultsDownload(string json);


        YardPagedResult<rRoadStagger> rRoadStaggerGetPaged(string json);

        Task<FileDto> rRoadStaggerGetToExcel(string json);

        Task<string> rRoadStaggerDownload(string json);

        YardPagedResult<rRoadbillInfos> rRoadbillInfosGetPaged(string json);

        Task<FileDto> rRoadbillInfosGetToExcel(string json);

        Task<string> rRoadbillInfosDownload(string json);
        YardPagedResult2<DataTable> rStatisticsCLGetPaged(string json);

        Task<FileDto> rStatisticsCLGetToExcel(string json);

        bool getBAccountQuery();
    }
}
